In existing technologies, a domain name system (DNS) is referred to as a globally distributed name server system with a primary role of resolving the domain names of websites into specific server IP addresses.
In the era of the Internet, the principle of implementing acceleration by a content delivery network (CDN) is to dispatch a user's request for accessing an application to an application server capable of providing a quality service, and thereby achieving the effect of enhancing the speed and experience for the user's access to application service. In general, the dispatching modes adopted in the industry include the following:
1. A dispatching mode based on the DNS, which may be further categorized into two types:
Global DNS dispatching type: in this dispatching type, a domain name of a service accessed by a user and a CDN use the same DNS server system, as shown in FIG. 6.
The global DNS dispatching mode is achieved in a way that a client end starts sending a request for resolving the domain names of a.com and b.com to a local DNS. The local DNS sends the request to a DNS authorized by the target websites and a CDN for processing. After processing, an address of a CDN service cluster node server IP1 including a.com and b.com is returned. The local DNS forwards it to the client end, and then the client end sends a request for service contents of a.com and b.com to the CDN node server service cluster IP1 according to the address of IP1. The CDN node server service cluster IP1 then respectively requests the service content of the target websites, i.e., a.com and b.com, and received content is returned to the client end by the CDN node server service cluster IP1.
Distributed DNS dispatching type: the difference between this mode and the above global DNS dispatching type is that the authorized DNS of the service website and the authorized DNS of CDN are different systems, so it requires a conversion of a resolving privilege by means of a Canonical Name record method (CNAME). Such a method is very flexible because the service website and the CDN are mutually independent. However, since the number of resolving steps is increased, the resolution time is longer as shown in FIG. 7.
The distributed DNS dispatching mode is achieved in a way that a client end starts sending a request for resolving a domain name of a.com to a local DNS. The local DNS sends the request to a DNS authorized by the target website a.com for processing resolution, and the resolving privilege is then transferred to the DNS authorized by the target website a.com by means of CNAME (a.cdn.com). The processed result, which includes an address of a CDN node server service cluster IP1 covering a.com, is then returned to the local DNS. The local DNS forwards the result to the client end, and then the client end sends a request for service content of a.com to the CDN node server service cluster IP1 according to the address of IP1. The CDN node server service cluster IP1 then requests the service content from the target website, i.e., a.com, and the received service content is returned to the client end by the CDN node server service cluster IP1.
2. A dispatching mode based on redirecting a service address: a request for service from a user is initially sent to a dispatching server. The server will dispatch the user's request to an optimal server for service by means of a specific redirecting response header (such as an http 302 response) according to attributes of the user's request (such as IP address or cookie of a client of the user, etc.) as shown in FIG. 8.
This dispatching mode is achieved in a way that a client end starts sending a request for resolving a domain name of a.com to a local DNS. The local DNS sends the request to a DNS authorized by the target website a.com for resolution. The processed result, which includes an IP address (IP0) of the target website a.com is then returned to the local DNS. The local DNS forwards the processed result to the client end and then the client requests service content from the target website a.com (IP0) according to the IP0 address. The target website a.com (IP0) then returns a 302 response for requesting a jump to the IP1. The client end at this time requests the service content of a.com from the IP1. The CDN node server service cluster IP1 then requests the service content from the target website a.com and feedbacks the received service content to the client.
3. A dispatching mode based on rewriting a uniform resource locator (URL): a system structure and a process of this node are as shown in FIG. 8. This mode is different from the above second mode in that an embedded URL in a webpage is modified for the purpose of dispatching.
This dispatching mode is achieved in a way that a client starts sending a request for resolving a domain name of a.com to a local DNS. The local DNS sends the request to a DNS authorized by the target website a.com for resolution. The processed result, which includes an IP address (IP0) of the target website a.com to the local DNS. The local DNS forwards the processed result to the client end and then the client end requests service content from the target website a.com (IP0) according to the IP0 address. The target website a.com (IP0) then returns a URL request containing IP1 for requesting a jump to IP1. The client end at this time requests the service content of a.com from the IP1. A CDN node server service cluster IP1 then requests the service content from the target website a.com and feedbacks the received service content to the client end.
4. A dispatching mode based on (Anycast) any broadcasting manner, i.e., broadcasting based on either an IP address layer or an application overlapping layer. In this way, all possible service node servers may receive a service request from a user, and response content is directly returned to the user from a server that is capable of providing the best service based on rules.
5. A dispatching mode based on a P2P manner: a user negotiates with a specific service node server to find an optimal service node server. If the node server that is found after the first negotiation does not meet the service requirement, the client end is then notified to find another optimal one for service until the best service node server is found.
According to the above dispatching modes, the following deficiencies exist:
Mode 1: it is obvious to note that this mode, in which the client's located address is determined only from the local DNS's IP address, is very inaccurate since IP addresses of local DNS used by about 20% of client ends are located in networks different from IP addresses of client ends, so that an error in dispatching will easily occur, thus leading to the loss of the acceleration effect of the CDN.
Modes 2 and 3: although these modes are indeed capable of performing dispatching based on the user's IP address, the time for the resolution process is also increased in these modes as compared with the mode 1, particularly for the time needed for interacting with the application dispatching server being increased. The delay due to this interaction may affect the user's experience significantly for accessing small objects. Meanwhile, another deficiency of the mode 3 is its poor flexibility and performance, because it requires modifying page content to dispatch requests.
Mode 4: it is actually the most efficient and the most accurate method. However Anycast broadcast of IP address is not currently supported by many networks. If an application-layer Anycast is adopted, protocol compatibility will definitely be affected. It is likely to be achieved in a specific application while it is not supported by the majority of applications. Hence the mode 4 has a very poor compatibility, and especially for some specific environment, it is basically infeasible.
Mode 5: the deficiency in this mode is not only in protocol compatibility, but also in a problem of resolution efficiency. The efficiency of such P2P-based dispatching mode decreases significantly with the increase in number of service nodes.
Accordingly, the drawbacks in the above dispatching modes have become a technical issue to be solved urgently.